﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace QuanLyBepAnTuThien
{
    public partial class UcQuanLyNguoiDung : UserControl
    {
        public UcQuanLyNguoiDung()
        {
            InitializeComponent();
        }
        connect cn = new connect();
        bool them = true;
        int vitri;
        private void UcQuanLyNguoiDung_Load(object sender, EventArgs e)
        {
            Loaddata();
                         
        }
        private void Loaddata()
        {
            gridNguoiDung.DataSource = cn.getDataTable("tblNguoiDung_DS");           
            cobHoTen.Properties.DataSource = cn.getDataTable("tblNhanVien_DS");
            cobHoTen.Properties.DisplayMember = "HoTen";
            cobHoTen.Properties.ValueMember = "MaNV";            
            BatTatConTrol(false);
        }
        private void BatTatConTrol(bool val)
        {
            cobHoTen.Enabled = val;
            txtUsername.Enabled = val;
            txtPass.Enabled = val;
            cobNhom.Enabled = val;            
            btnLuu.Enabled = val;            
            btnThem.Enabled = !val;
            btnSua.Enabled = !val;
            btnXoa.Enabled = !val;
        }
        private void gridView_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
        {
            if (e.RowHandle == gridView.FocusedRowHandle)
            {
                e.Appearance.BackColor = Color.SkyBlue;
            }
        }
       

        private void gridView_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {

            //SelectedValue = gridView.GetFocusedRowCellDisplayText("MaNhanVien");
            txtUsername.Text = gridView.GetFocusedRowCellDisplayText("tendn");            
            cobNhom.SelectedValue = gridView.GetFocusedRowCellDisplayText("nhom");
            cobHoTen.EditValue = gridView.GetFocusedRowCellDisplayText("MaNV");
            cobNhom.Text = gridView.GetFocusedRowCellDisplayText("nhom");
        }
        private void cobHoTen_SelectedValueChanged(object sender, EventArgs e)
        {
            //txtMaSo.Text = cobHoTen.SelectedValue.ToString() ;            
        }   
        private void btnThem_Click(object sender, EventArgs e)
        {
            BatTatConTrol(true);
            txtUsername.Clear();
            txtPass.Clear();            
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            BatTatConTrol(true);

            txtUsername.Enabled = false;
            txtPass.Enabled = false;
            cobHoTen.Enabled = false;
            vitri = gridView.FocusedRowHandle;
            them = false;           

        }
        private bool kiemtramanv()
        {
            SqlCommand cmd = new SqlCommand("tblNguoiDung_KiemTraMaNv",cn.ketnoi());
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("manv",SqlDbType.VarChar)).Value = cobHoTen.EditValue;
            object ob = cmd.ExecuteScalar();
            if (Convert.ToInt32(ob) >= 1)
            {
                return false;
            }
            return true;
        }
        private bool kiemtrausername()
        {
            SqlCommand cmd = new SqlCommand("tblNguoiDung_KiemTraTendn",cn.ketnoi());
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("u",SqlDbType.NVarChar)).Value = txtUsername.Text;
            object ob = cmd.ExecuteScalar();
            if (Convert.ToInt32(ob) >= 1)
            {
                return false;
            }
            return true;
        }
        private void btnLuu_Click(object sender, EventArgs e)
        {            
            if (them == true)
            {
                if (kiemtramanv() == false)
                {
                    MessageBox.Show("Nhân viên này đã được cấp tài khoản","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                    cobHoTen.Focus();
                }
                else if (kiemtrausername() == false)
                {
                    MessageBox.Show("Tên đăng nhập này đã được sử dụng vui lòng chọn tên đăng nhập khác", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    txtUsername.Focus();
                }
                else
                {
                    SqlCommand cmd_them = new SqlCommand("tblNguoiDung_Them", cn.ketnoi());
                    cmd_them.CommandType = CommandType.StoredProcedure;
                    cmd_them.Parameters.Add(new SqlParameter("manv", SqlDbType.VarChar)).Value = cobHoTen.EditValue;
                    cmd_them.Parameters.Add(new SqlParameter("u", SqlDbType.VarChar)).Value = txtUsername.Text;
                    cmd_them.Parameters.Add(new SqlParameter("p", SqlDbType.VarChar)).Value = cn.md5(txtPass.Text);
                    cmd_them.Parameters.Add(new SqlParameter("nhom", SqlDbType.VarChar)).Value = cobNhom.Text;
                    if (cmd_them.ExecuteNonQuery() == 1)
                    {
                        Loaddata();
                    }
                    else
                    {
                        MessageBox.Show("Quá trình thêm người dùng xảy ra lỗi, vui lòng thực hiện lại", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            else
            {
                
                SqlCommand cmd_Sua = new SqlCommand("tblNguoiDung_Sua", cn.ketnoi());
                cmd_Sua.CommandType = CommandType.StoredProcedure;
                cmd_Sua.Parameters.Add(new SqlParameter("u", SqlDbType.VarChar)).Value = txtUsername.Text;
                cmd_Sua.Parameters.Add(new SqlParameter("nhom", SqlDbType.VarChar)).Value = cobNhom.Text;
                cmd_Sua.Parameters.Add(new SqlParameter("manv",SqlDbType.NVarChar)).Value = cobHoTen.EditValue;
                if (cmd_Sua.ExecuteNonQuery() == 1)
                {
                    Loaddata();
                    gridView.FocusedRowHandle = vitri;
                }
                else
                {
                    MessageBox.Show("Quá trình thêm người dùng xảy ra lỗi, vui lòng thực hiện lại", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }                
            }            
        }

        private void simpleButton4_Click(object sender, EventArgs e)
        {
            Loaddata();
        }

        private void txtTimKiem_Enter(object sender, EventArgs e)
        {
            if (txtTimKiem.Text == "Nhập từ khóa tìm kiếm")
            {
                txtTimKiem.Text = "";
            }
        }

        private void txtTimKiem_Leave(object sender, EventArgs e)
        {
            if (txtTimKiem.Text == "")
            {
                txtTimKiem.Text = "Nhập từ khóa tìm kiếm";
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Bạn có chắc chắn muốn xóa người dùng này không?", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                SqlCommand cmd = new SqlCommand("tblNguoiDung_Xoa",cn.ketnoi());
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("u",SqlDbType.NVarChar)).Value = txtUsername.Text;
                if (cmd.ExecuteNonQuery() == 1)
                {
                    Loaddata();
                }
                else
                {
                    MessageBox.Show("Lỗi","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Error);
                }
            }
        }

        


         
    }
}

